package com.sna.snaapplication.controller.UserSystem;


import com.sna.snaapplication.entity.R;
import com.sna.snaapplication.entity.usercore.core.UserSearchRequest;
import com.sna.snaapplication.service.UserSys.AdminUserService;
import com.sna.snaapplication.utils.CurrentLoginUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.sna.snaapplication.entity.usercore.core.DeleteUserRequest;
import com.sna.snaapplication.entity.usercore.User;
@RestController
@RequestMapping("/admin")
public class AdminUserController {
    /*
    * 管理员
    * */

    @Autowired
    AdminUserService userService;
    @Autowired
    CurrentLoginUtil currentLoginUtil;

    //获取所有用户所有数据--用户管理列表
   /* @GetMapping("/list")
    public TableDataInfo list(User user)
    {
        startPage();
        List<User> list = userService.selectUserList(user);
        return getTableDataInfo(list);
    }*/
    //删除用户数据
    //超级管理员才有资格删除 不能删除角色为管理员的用户
    @DeleteMapping("/delete")
    public R deleteUser(@RequestBody DeleteUserRequest deleteUserRequest) {
        //这个id为用户id 先去角色表里删除userId 再去user表里删除用户
        System.out.println("删除用户id是"+deleteUserRequest.getUserId());
        if(!currentLoginUtil.isAdmin()) {
           return R.fail("权限不足");
        }

        Long userId = deleteUserRequest.getUserId();
        return userService.deleteUser(userId);
    }

    @PostMapping("/find")
    public R findUser(@RequestBody UserSearchRequest request){

        System.out.println("请求参数是"+request);

        if (!currentLoginUtil.isAdmin()) {
            return R.fail("权限不足");
        }
        // 验证请求参数
        if (request == null) {
            return R.fail("请求参数为空");
        }
        String userName = request.getUserName();
        String phonenumber = request.getPhonenumber();
        String status = request.getStatus();

        return userService.findUser(userName, phonenumber, status);
    }
    //可以修改普通用户数据
    @PostMapping("/modify")
    public R modifyUser(@RequestBody User user){

        if(currentLoginUtil.isAdmin()) {
            return userService.modifyUser(user);
        }
        return R.fail("权限不足");
    }


    //添加用户
    //信息->用户昵称 手机号码 用户名称 性别 邮箱 密码(默认123456) 状态(默认正常 0) 角色(普通用户user)
    @PostMapping("/add")
    public R addUser(@RequestBody User user){

        //判断必要的数据存不存在
        //用户角色 是common

        System.out.println("想要添加的用户user是"+user);
        if(currentLoginUtil.isAdmin()) {
            return userService.addUser(user);
        }
        return R.fail("权限不足");
    }

}
